package com.linkgie.galaxyframework.fileservice;

import java.util.Properties;

public interface FileObject extends FileItem {

	/**
	 * 文件的唯一ID；
	 * 
	 * @return
	 */
	String getId();

	/**
	 * SHA256 校验码；
	 * 
	 * @return
	 */
	String getChecksum();

	/**
	 * 文件的哈希摘要；
	 * 
	 * @return
	 */
	String getContentHash();

	/**
	 * 分类；
	 * 
	 * @return
	 */
	String getSubject();
	
	/**
	 * 是否保存在临时区；
	 * 
	 * @return
	 */
	boolean isTemporary();
	
	/**
	 * 是否已发布；
	 * 
	 * @return
	 */
	FileStatus getStatus();
	
	/**
	 * 创建时间；
	 * 
	 * @return
	 */
	long getCreatedTime();
	
	/**
	 * 最新修改时间；
	 * 
	 * @return
	 */
	long getLastModifiedTime();
	
	/**
	 * 发布时间；
	 * <p>
	 * 未发布时，返回 null； 
	 * 
	 * @return
	 */
	Long getPublishedTime();
	
	String getDescription();
	
	Properties getAttributes();

}
